In P2P computer networks peers nodes (or peers) cooperate to deliver data content to one another. The diverse connectivity and the cumulative bandwidth of the peers is e.g. used for sharing data content such as files containing audio, video, data or anything in digital format, telephony traffic, video streaming or video download. A P2P network will in many cases provide a much more efficient distribution of the data content than a hierarchical network topology with a relatively low number of centralized servicers providing data content to end nodes. In a pure P2P network there is no notion of clients or servers but only of equal peers. There are however many types of hybrid P2P networks which combine a client-server structure with the P2P structure since different network structures may be preferred for different types of tasks. Hereinafter the term P2P network is intended to encompass pure P2P networks as well as hybrid P2P networks.
There are a number of different protocols that may be used for P2P communication such as BitTorrent, Gnutella, CAN, FastTrack, and JXTA. The BitTorrent protocol is one of the most widely used P2P protocols and is described in “The BitTorrent Protocol Specification”, version 11031, by Cohen, Bram, last edited Feb. 28, 2008, available on “http://www.bittorrent.org/beps/bep 0003.html”.
The BitTorrent protocol, as well as many other P2P protocols, was initially designed to allow file sharing over a P2P overlay network. In case of file sharing a user wants to have a file downloaded as fast as possible and it is usually of little consequence if the end of the file is downloaded before the beginning of the file.
As video on demand (VoD) and live streaming P2P systems are becoming popular nowadays, it is of interest to modify the P2P protocols for file sharing, such as BitTorrent, to also be able to handle these popular services. However, in the case of VoD or video streaming there are other factors to consider than in the case of file sharing. In the VoD case the user wants to have the beginning of the file downloaded first, in order to start the playback of the content. Thereafter the user wants the following part of the content and so on. Thus, the download of the content is more or less sequential, with some degree of freedom. For a user of VoD service the start-up delay is an important part of the Quality of Experience (QoE). The start-up delay is the time it takes from the start of the download of the video file until the playback of that file starts. The continuity of the VoD service is also important. The playback of the video file can start before the entire file is downloaded as long as the first part or parts are available. However, it is important that a later part of the video file has been downloaded before the playback point reaches that later part otherwise the video will freeze. Other examples of applications that may place similar demands on the download of content as VoD are audio and video streaming, gaming and in some cases software updates.
The original BitTorrent protocol uses the so called tit-for-tat approach. The tit-for-tat approach is an incentive algorithm that allows peers that contribute more to download faster. A serving peer, i.e. a peer that has data content which it allows other interested peers, requesting peers, to download will give priority to those requesting peers that have uploaded the most to the serving peer. So the tit-for-tat algorithm has the idea of being fair since you give more priority to the peers that upload the most to you. On top of that, from time to time the algorithm gives the chance to someone not uploading to you, allowing peers that have no content to start obtaining content and sharing. The tit-for-tat approach was also originally developed for file sharing and is not optimized for services such as VoD due to differing demands on the execution of the download as discussed above.
A problem with prior art mechanisms for P2P sharing is therefore that they are designed for the case of file sharing and not for other types of services such as VoD, progressive download, and audio and video streaming.